######################################################
#                                                               #
######################################################
PROCEDURE Crypt(ENC_PASS IN OUT VARCHAR2,MY_TXT IN OUT VARCHAR2)
IS
	X1 NUMBER default 0;
	ENC_TXT VARCHAR2(20);
	G NUMBER(2) default 0;
	TEMP NUMBER;
	Crypted VARCHAR2(200) default ' ';

BEGIN
      ENC_TXT:='MOHCOOL';

          For T IN 1..LENGTH(ENC_TXT) LOOP

	TEMP := ASCII(SUBSTR(ENC_TXT, T, 1));
	
  	X1 := X1 + TEMP;
  
          END LOOP;

      X1 := trunc((X1 * 0.1) / 6);

      ENC_TXT := X1;
       	
      G := 0;
     
          For TT IN 1..LENGTH(ENC_PASS) LOOP

	      TEMP := ASCII(SUBSTR(ENC_PASS, TT, 1));
      
	      G := G + 1;

                   If G = 6 Then 
     		G := 0;
     		X1 := 0;

	       END IF;
    	       
                   If G = 0 Then 

	    	X1 := TEMP - (ENC_TXT - 2);
    
	       END IF;
       	      
  	       If G = 1 Then 

	       	X1 := TEMP + (ENC_TXT - 5);
      	        
                     END IF;

	        If G = 2 Then 

	        	X1 := TEMP - (ENC_TXT - 4);
        	
	        END IF;

                      If G = 3 Then 

               	X1 := TEMP + (ENC_TXT - 2);
               	
	         END IF;        

                      If G = 4 Then 

	            	X1 := TEMP - (ENC_TXT - 3);
            	
	          END IF;

	          If G = 5 Then 

	             	X1 := TEMP + (ENC_TXT - 5);

                       END IF;

                 X1 := X1 + G;
                 
               Crypted := Crypted || Chr(X1);
            
	END LOOP;

       MY_TXT:=Crypted;

End ;


######################################################
#                                                             #
######################################################

procedure DeCrypt(DEC_PASS  VARCHAR2,MY_TXT IN OUT VARCHAR2)
IS
	X1 NUMBER default 0;
	DEC_TXT VARCHAR2(20);
	G NUMBER(2) default 0;
	TEMP NUMBER;
	DeCrypted VARCHAR2(200) default ' ';

BEGIN

      DEC_TXT:='MOHCOOL';

      For T IN 1 .. LENGTH(DEC_TXT) LOOP

	   TEMP := ASCII(SUBSTR(DEC_TXT, T, 1));

	          X1:= X1 + TEMP;

      END LOOP;

       X1 := TRUNC((X1 * 0.1) / 6);
       
       DEC_TXT := X1;

       G := 0;

       For TT IN 1 .. LENGTH(DEC_PASS) LOOP

	       TEMP := ASCII(SUBSTR(DEC_PASS, TT, 1));

	       G := G + 1;

                     If G = 6 Then

	         	 G := 0;

	         	 X1 := 0;

	       END IF;
         
       	       If G = 0 Then

	       	 X1 := TEMP + (DEC_TXT - 2);

	        END IF;

                     If G = 1 Then 

	        	X1 := TEMP - (DEC_TXT - 5);

                     END IF;

	         If G = 2 Then

	         	 X1 := TEMP + (DEC_TXT - 4);

	          END IF;

	          If G = 3 Then 

	          	X1 := TEMP - (DEC_TXT - 2);

	          END IF;

	          If G = 4 Then

	             	 X1 := TEMP + (DEC_TXT - 3);

	           END IF;
	         
 	           If G = 5 Then

	             	 X1 := TEMP - (DEC_TXT - 5);

	           END IF;

             	       X1 := X1 - G;
	
                     DeCrypted := DeCrypted || Chr(X1);
  
          END LOOP;

          MY_TXT:= DeCrypted;

End ;
